package com.xydtech.ecard.ecard.mapper;

import com.xydtech.ecard.ecard.domain.EcardApiMerchantReservationTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子名片商户预约任务Mapper接口
 *
 * @author xydtech
 * @date 2023-08-05
 */
public interface EcardApiMerchantReservationTaskMapper
{
    /**
     * 查询电子名片个人/商户/企业/新型农业主体预约任务
     *
     * @param id 电子名片商户预约任务主键
     * @return 电子名片商户预约任务
     */
    public EcardApiMerchantReservationTask selectEcardMerchantReservationTaskById(Long id);

    /**
     * 查询电子名片商户预约任务列表
     *
     * @param ecardApiMerchantReservationTask 电子名片商户预约任务
     * @return 电子名片商户预约任务集合
     */
    public List<EcardApiMerchantReservationTask> selectEcardMerchantReservationTaskList(EcardApiMerchantReservationTask ecardApiMerchantReservationTask);

    /**
     * 新增电子名片个人/商户/企业/新型农业主体预约任务
     *
     * @param ecardApiMerchantReservationTask 电子名片商户预约任务
     * @return 结果
     */
    public int insertEcardMerchantReservationTask(EcardApiMerchantReservationTask ecardApiMerchantReservationTask);

    /**
     * 修改电子名片个人/商户/企业/新型农业主体预约任务
     *
     * @param ecardApiMerchantReservationTask 电子名片商户预约任务
     * @return 结果
     */
    public int updateEcardMerchantReservationTask(EcardApiMerchantReservationTask ecardApiMerchantReservationTask);

    /**
     * 删除电子名片商户预约任务
     *
     * @param id 电子名片商户预约任务主键
     * @return 结果
     */
    public int deleteEcardMerchantReservationTaskById(Long id);

    /**
     * 批量删除电子名片商户预约任务
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEcardMerchantReservationTaskByIds(String[] ids);

    /***
     * 查询个人/商户/企业/新型农业主体预约任务列表
     * @param cmRegistId
     * @param merchantType
     * @param search 查询条件
     * @return: java.util.List<com.xydtech.ecard.ecard.domain.EcardApiMerchantReservationTask>
     * @Author: lin
     * @Date: 2023/8/5 13:12
     */
    List<EcardApiMerchantReservationTask> getMerchantReservationTaskList(@Param("cmRegistId") Long cmRegistId,
                                                                         @Param("merchantType") String merchantType,
                                                                         @Param("search") String search,
                                                                         @Param("deptId") Long deptId,
                                                                         @Param("phone") String phone);

    /***
     * 根据商户编号和商户类型查询未处理的商户预约任务
     * @param merchantId
     * @return: com.xydtech.ecard.ecard.domain.EcardApiMerchantReservationTask
     * @Author: lin
     * @Date: 2023/8/5 16:55
     */
    List<EcardApiMerchantReservationTask> getMerchantReservationTaskByMerchantId(@Param("merchantId") Long merchantId, @Param("merchantType") String merchantType);
}
